package aurora

import (
	"context"

	"github.com/go-redis/redis/v8"
)

//go-redis 当前只完成了单一的客户端配置,支持同时配置多个客户端，go-redis本身对redis的集群等高可用方式提供了实现，目前还没有对这些进行整合

//初步完成   https://redis.uptrace.dev/
func (a *Aurora) loadGoRedis() {
	if a.config == nil {
		//如果配置文件没有加载成功，将不做任何事情
		return
	}
	configs := a.config.GetStringMap("aurora.go-redis")
	if len(configs) != 3 {
		return
	}
	a.Info("start loading go-redis configuration")
	c := redis.NewClient(&redis.Options{
		Addr:     configs["addr"].(string),
		Password: configs["password"].(string), // no password set
		DB:       configs["db"].(int),          // use default DB
	})
	ping := c.Ping(context.TODO())
	if err := ping.Err(); err != nil {
		a.Error(err.Error())
		return
	}
	a.component.put("go-redis", c)
}
